home *** CD-ROM | disk | FTP | other *** search
/ SGI Octane 2 VPro Patches 4103 / SGI Octane2 VPro Patches (alt).iso / relnotes / gl_dev / ch6.z / ch6
Text File  |  2000-11-03  |  32KB  |  727 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        6.  _O_p_e_n_G_L
  9.  
  10.        OpenGL is supported on the following graphics adaptors:
  11.  
  12.          Indy - XL 8/24 bits
  13.          Indigo - Starter, XS, XS24, XZ, Elan
  14.          IndigoII - XL, XZ, Extreme, Solid Impact, Maximum Impact,
  15.                     High Impact
  16.          Onyx - InfiniteReality, RealityEngine, RealityEngine2, VTX
  17.          Onyx2 - InfiniteReality, Reality
  18.          Octane - Octane MXI, Octane SSI and Octane SI
  19.          Octane2 - Octane2 V6, Octane2 V8
  20.  
  21.        These implementations pass Level 0 of the conformance tests
  22.        (i.e., the "mustpass" test suite).
  23.  
  24.        In this release, the RealityEngine graphics adaptors do not
  25.        pass level 0 of the conformance tests for OpenGL 1.1.
  26.        (Please see the conformance reports for details.)
  27.  
  28.        6.1  _D_o_c_u_m_e_n_t_a_t_i_o_n
  29.  
  30.        The following documentation is available for OpenGL:
  31.  
  32.           +o The _O_p_e_n_G_L _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e (Addison-Wesley, 1993) is
  33.             a comprehensive guide to programming with OpenGL.
  34.  
  35.           +o The _O_p_e_n_G_L _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l (Addison-Wesley, 1992)
  36.             contains an overview of OpenGL and man pages for all
  37.             OpenGL, GLX and GLU functions.
  38.  
  39.           +o _O_p_e_n_G_L _o_n _S_i_l_i_c_o_n _G_r_a_p_h_i_c_s _S_y_s_t_e_m_s provides information
  40.             that is essential for writing OpenGL applications in
  41.             the X11 and IRIS IM environments, describes major SGI
  42.             extensions to OpenGL, and gives advice for tuning
  43.             OpenGL application performance.
  44.  
  45.           +o _T_h_e _O_p_e_n_G_L _P_o_r_t_i_n_g _G_u_i_d_e describes how to port programs
  46.             that were written for IRIS GL.  (Some of this
  47.             information has been superseded by the material in
  48.             _O_p_e_n_G_L _o_n _S_i_l_i_c_o_n _G_r_a_p_h_i_c_s _S_y_s_t_e_m_s.)
  49.  
  50.           +o The _I_R_I_S _P_r_o_g_r_a_m_m_i_n_g _N_o_t_e_s include documentation for
  51.             X11, GL/GLX, Font Manager and mixed model programming
  52.             in IRIS GL.
  53.  
  54.        The IRIS Development Option documentation includes online
  55.        copies of _T_h_e _O_p_e_n_G_L _P_o_r_t_i_n_g _G_u_i_d_e, _O_p_e_n_G_L _o_n _S_i_l_i_c_o_n
  56.        _G_r_a_p_h_i_c_s _S_y_s_t_e_m_s, the _I_R_I_S _P_r_o_g_r_a_m_m_i_n_g _N_o_t_e_s, the _O_p_e_n_G_L
  57.        _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e, the _O_p_e_n_G_L _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l and reference
  58.        pages (commonly known as ``man pages'') for all OpenGL, GLX
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        and GLU functions.  It includes a hardcopy of the _O_p_e_n_G_L
  75.        _P_r_o_g_r_a_m_m_i_n_g _G_u_i_d_e.  You may also order a hardcopy of the
  76.        porting guide (part number M4-OGLPort-5.1) and the _O_p_e_n_G_L
  77.        _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l (part number M4-OGLMAN-1.0).
  78.  
  79.        The reference pages for OpenGL commands have been updated
  80.        with the latest information on machine-dependencies for each
  81.        of the supported graphics adaptors.  This includes
  82.        performance tuning hints as well as known bugs and
  83.        functionality subsetting warnings.
  84.  
  85.        If you're porting from IRIS GL to OpenGL, the best approach
  86.        is to convert your program to a mixed-model program first
  87.        (see the _I_R_I_S _P_r_o_g_r_a_m_m_i_n_g _N_o_t_e_s) and then consult _O_p_e_n_G_L _o_n
  88.        _S_i_l_i_c_o_n _G_r_a_p_h_i_c_s _S_y_s_t_e_m_s followed by _T_h_e _O_p_e_n_G_L _P_o_r_t_i_n_g
  89.        _G_u_i_d_e for more information.
  90.  
  91.        6.2  _E_x_t_e_n_s_i_o_n_s
  92.  
  93.        The following OpenGL extensions are available in IRIX 6.5.
  94.        For more information, please consult the _g_l_i_n_t_r_o reference
  95.        page.
  96.  
  97.           +o _E_X_T__a_b_g_r extends the list of host-memory color formats.
  98.             Specifically, it provides a reverse-order alternative
  99.             to image format RGBA. The ABGR component order matches
  100.             the cpack Iris GL format on big-endian machines.
  101.  
  102.           +o _S_G_I_X__a_s_y_n_c provides a way to allow certain OpenGL
  103.             commands to complete out-of-order with respect to
  104.             others.  This extension does not by itself enable
  105.             asynchrony; it is a framework establishing functions
  106.             for bookkeeping and synchronization, into which
  107.             specific further OpenGL extensions can be inserted.
  108.  
  109.           +o _S_G_I_X__a_s_y_n_c__p_i_x_e_l provides a new asynchronous mode for
  110.             texture download, pixel download and pixel readback
  111.             commands, in conjunction with the _S_G_I_X__a_s_y_n_c extension.
  112.             It allows programs to transfer textures or images from
  113.             the host to the graphics accelerator in parallel with
  114.             the execution of other graphics commands.  It also
  115.             allows programs to issue non-blocking pixel readback
  116.             commands that return immediately after they are issued,
  117.             so that the program can issue other commands while the
  118.             readback takes place.
  119.  
  120.           +o _S_G_I_X__b_l_e_n_d__a_l_p_h_a__m_i_n_m_a_x enhances _g_l_B_l_e_n_d_E_q_u_a_t_i_o_n by
  121.             providing new blend equations which produce outcomes
  122.             for all four color components based only on the
  123.             comparison of the alpha component's source and
  124.             destination values.  Supported on Octane2 VPro systems.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.           +o _E_X_T__b_l_e_n_d__c_o_l_o_r allows a constant to be used as a
  141.             factor in the blending equation.  A typical use is to
  142.             blend two RGB images.  Without the constant blend
  143.             factor, one image must have an alpha channel with each
  144.             pixel set to the desired blend factor.
  145.  
  146.           +o _E_X_T__b_l_e_n_d__l_o_g_i_c__o_p defines an additional blending
  147.             equation for _g_l_B_l_e_n_d_E_q_u_a_t_i_o_n_E_X_T.  This equation is a
  148.             simple logical combination of the source and
  149.             destination colors.
  150.  
  151.           +o _E_X_T__b_l_e_n_d__m_i_n_m_a_x allows the blend equation to be
  152.             changed using _g_l_B_l_e_n_d_E_q_u_a_t_i_o_n_E_X_T and introduces two new
  153.             blend equations, one to produce the minimum color
  154.             components of the source and destination colors and one
  155.             to produce the maximum.
  156.  
  157.           +o _E_X_T__b_l_e_n_d__s_u_b_t_r_a_c_t defines two additional blending
  158.             equations for use with _g_l_B_l_e_n_d_E_q_u_a_t_i_o_n_E_X_T.  These new
  159.             equations are similar to the default blending equation,
  160.             but produce the difference of its terms, rather than
  161.             the sum.  Image differences are useful in many image
  162.             processing applications.
  163.  
  164.           +o _S_G_I_X__c_l_i_p_m_a_p introduces new filtering and memory
  165.             management techniques for handling extraordinarily
  166.             large textures.  Clipmaps provide many of the features
  167.             of mipmaps, while using a small fraction of the texture
  168.             memory required for mipmaps of equivalent size.  They
  169.             are especially useful for rendering terrain and roaming
  170.             over large images.  Clipmaps are supported on
  171.             InfiniteReality systems.
  172.  
  173.           +o _S_G_I__c_o_l_o_r__m_a_t_r_i_x adds a 4x4 matrix stack and matrix
  174.             multiplication to the pixel transfer path.  The color
  175.             matrix operates on RGBA pixel components.  It can be
  176.             used to reorder or duplicate color components, and to
  177.             implement simple color-space conversions.
  178.  
  179.           +o _S_G_I__c_o_l_o_r__t_a_b_l_e defines a new RGBA-format color lookup
  180.             table mechanism, and several new lookup tables in the
  181.             OpenGL pixel path.  The new lookup tables are treated
  182.             as one-dimensional images with internal formats, like
  183.             texture images and convolution filter images.  This
  184.             allows the tables to operate on a subset of the
  185.             components of passing pixels.  (For example, a table
  186.             with internal format GL_ALPHA modifies only the A
  187.             component of each passing pixel, leaving the R, G, and
  188.             B components untouched.)  A small subset of this
  189.             extension is supported on RealityEngine,
  190.             RealityEngine2, and VTX systems; because of this, the
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.             extension is not listed in the extensions string
  207.             returned by _g_l_G_e_t_S_t_r_i_n_g.  The full extension is
  208.             supported on all other systems.
  209.  
  210.           +o _E_X_T__c_o_n_v_o_l_u_t_i_o_n adds 1- or 2-dimensional convolution
  211.             operations to the pixel transfer process.  Pixel
  212.             drawing, reading, and copying, as well as texture image
  213.             definition, are candidates for convolution.  The
  214.             convolution kernels are themselves treated as 1- and
  215.             2-dimensional images, which can be loaded from
  216.             application memory or from the framebuffer.  A subset
  217.             of this extension is supported on RealityEngine,
  218.             RealityEngine2, and VTX systems; the full extension is
  219.             supported on all other systems.
  220.  
  221.           +o _S_G_I_X__c_o_n_v_o_l_u_t_i_o_n__h_i_n_t provides a way to trade off
  222.             convolution performance against arithmetic accuracy.
  223.             Supported on Octane2 VPro systems.
  224.  
  225.           +o _E_X_T__c_o_p_y__t_e_x_t_u_r_e provides the ability to copy pixels
  226.             directly from the framebuffer into texture memory.  At
  227.             present only a small subset of this extension has been
  228.             implemented on RealityEngine, RealityEngine2, and VTX
  229.             systems, so the extension name is not listed in the
  230.             extensions string returned by _g_l_G_e_t_S_t_r_i_n_g.  It is fully
  231.             supported on all other systems.
  232.  
  233.           +o _S_G_I_S__d_e_t_a_i_l__t_e_x_t_u_r_e introduces texture magnification
  234.             filters that blend between the level 0 image and a
  235.             separately defined "detail" image. This detail blending
  236.             can be enabled for all color channels, for the alpha
  237.             channel only, or for the red, green, and blue channels
  238.             only. It is available only for 2D textures.  Supported
  239.             on RealityEngine, RealityEngine2, and VTX systems, on
  240.             InfiniteReality systems and on Octane2 VPro systems.
  241.  
  242.           +o _S_G_I_S__f_o_g__f_u_n_c_t_i_o_n Standard OpenGL defines three fog
  243.             modes:  GL_LINEAR, GL_EXP (exponential), and GL_EXP2
  244.             (exponential squared).  Visual simulation systems can
  245.             benefit from more sophisticated atmospheric effects.
  246.             This extension provides the ability to define a custom
  247.             fog blending function by specifying a set of control
  248.             points that will be interpolated by the function.
  249.             Supported on InfiniteReality and Octane2 VPro systems.
  250.  
  251.           +o _S_G_I_X__f_o_g__o_f_f_s_e_t In highly-fogged environments, emissive
  252.             objects (like simulated automobile headlights or runway
  253.             landing lights) can appear unrealistically dim.  This
  254.             extension brightens fogged objects by offsetting the Z
  255.             value used in fog computations.  Supported on
  256.             InfiniteReality and Octane2 VPro systems.
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.           +o _S_G_I_X__f_r_a_g_m_e_n_t__l_i_g_h_t_i_n_g provides a general lighting
  273.             facility for lighting effects obtained by interpolation
  274.             of normals over a primitive, rather than by
  275.             interpolation of color.  Supported on Octane2 VPro
  276.             systems.
  277.  
  278.           +o _E_X_T__h_i_s_t_o_g_r_a_m defines pixel operations that count
  279.             occurrences of specific color component values
  280.             (histogram) and track the minimum and maximum color
  281.             component values (minmax).  An optional mode allows
  282.             pixel data to be discarded after the histogram and/or
  283.             minmax operations are completed.  Otherwise the pixel
  284.             data continue on to the next operation unaffected.
  285.  
  286.           +o _A_R_B__i_m_a_g_i_n_g defines a large set of image processing
  287.             primitives, such as color tables, convolution, color
  288.             matrices, histogramming, and additional blending
  289.             behavior.  The definition of this extension is provided
  290.             as optional material in the OpenGL 1.2 specification.
  291.  
  292.           +o _S_G_I_X__i_n_t_e_r_l_a_c_e modifies the behavior of _g_l_D_r_a_w_P_i_x_e_l_s,
  293.             _g_l_C_o_p_y_P_i_x_e_l_s, _g_l_T_e_x_I_m_a_g_e_2_D, _g_l_T_e_x_S_u_b_I_m_a_g_e_2_D_E_X_T,
  294.             _g_l_C_o_p_y_T_e_x_I_m_a_g_e_2_D_E_X_T and _g_l_C_o_p_y_T_e_x_S_u_b_I_m_a_g_e_2_D_E_X_T, such
  295.             that when GL_INTERLACE_SGIX is enabled the source image
  296.             is considered to be a field of an "interlaced" frame.
  297.             This is particularly useful for assembling consecutive
  298.             interlaced video format fields to into a complete frame
  299.             in either the framebuffer or in texture memory.
  300.             Supported on RealityEngine, RealityEngine2, and VTX
  301.             systems and on InfiniteReality systems.
  302.  
  303.           +o _S_G_I_X__l_i_s_t__p_r_i_o_r_i_t_y defines a mechanism to specify
  304.             priorities for display lists.  Some machines have
  305.             special high-performance display list memories; this
  306.             extension allows the user to tell the GL which display
  307.             lists should be stored in those memories.  Supported on
  308.             InfiniteReality and Octane2 VPro systems.
  309.  
  310.           +o _S_G_I_S__m_u_l_t_i_s_a_m_p_l_e provides a mechanism to antialias all
  311.             primitives.  The technique is to sample all primitives
  312.             multiple times at different locations within each pixel
  313.             (rather than just the pixel center). The color sample
  314.             values are resolved to a single, displayable color each
  315.             time a pixel is updated, so the antialiasing appears to
  316.             be automatic at the application level.  Supported on
  317.             RealityEngine, RealityEngine2, and VTX systems and on
  318.             InfiniteReality systems.
  319.  
  320.           +o _E_X_T__p_a_c_k_e_d__p_i_x_e_l_s provides support for packed pixels in
  321.             host memory.  A packed pixel is represented entirely by
  322.             one unsigned byte, one unsigned short, or one unsigned
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.             integer. The fields with the packed pixel are not
  339.             proper machine types, but the pixel as a whole is. Thus
  340.             the pixel storage modes, and their unpacking
  341.             counterparts, all work correctly with packed pixels.
  342.             This extension is not supported on RealityEngine,
  343.             RealityEngine2, and VTX systems.
  344.  
  345.           +o _E_X_T__p_o_l_y_g_o_n__o_f_f_s_e_t allows depth values of fragments to
  346.             be displaced so that lines (or points) and polygons
  347.             that lie in the same plane can be rendered without
  348.             interaction -- the lines are rendered either completely
  349.             in front of or behind the polygons (depending on the
  350.             sign of the offset factor).  It also allows multiple
  351.             coplanar polygons to be rendered without interaction,
  352.             if different offset factors are used for each polygon.
  353.  
  354.           +o _S_G_I_X__r_e_f_e_r_e_n_c_e__p_l_a_n_e allows a group of coplanar
  355.             primitives to be rendered without depth-buffering
  356.             artifacts.  This is accomplished by generating the
  357.             depth values for all the primitives from a single
  358.             ``reference plane'' rather than from the primitives
  359.             themselves.  This ensures that all the primitives in
  360.             the group have exactly the same depth value at any
  361.             given sample point, no matter what imprecision may
  362.             exist in the original specifications of the primitives
  363.             or in the GL's coordinate transformation process.
  364.             _S_G_I_X__r_e_f_e_r_e_n_c_e__p_l_a_n_e is useful for generating hidden-
  365.             line drawings, for applying decals to polygons, and for
  366.             multipass rendering techniques.  Supported on
  367.             InfiniteReality systems.
  368.  
  369.           +o _S_G_I_X__r_e_s_a_m_p_l_e enhances the unpacking resampling
  370.             capabilities of the _S_G_I_X__s_u_b_s_a_m_p_l_e extension.
  371.             Supported on Octane2 VPro systems.
  372.  
  373.           +o _S_G_I_X__s_h_a_d_o_w provides support for rendering shadows
  374.             using shadow maps.  First the application renders the
  375.             scene from the point of view of the light source, and
  376.             copies the resulting depth buffer to a texture with
  377.             internal format GL_DEPTH_COMPONENT.  Next the
  378.             application renders the scene from the normal
  379.             viewpoint.  Then the application enables the texture
  380.             parameter GL_TEXTURE_COMPARE_SGIX, sets the texture
  381.             comparison operator and texture matrix appropriately,
  382.             and re-renders the scene with 2D texturing enabled.
  383.             During this final rendering pass, the depth value
  384.             generated by iterating the _r texture coordinate is
  385.             compared with the shadow map stored in texture memory,
  386.             and the results of the comparison indicate whether the
  387.             pixel being textured is in shadow.  The filtered result
  388.             of the shadow comparisons can be blended with the pixel
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                   - 7 -
  401.  
  402.  
  403.  
  404.             to darken it.  Supported on InfiniteReality systems.
  405.  
  406.           +o _S_G_I_X__s_h_a_d_o_w__a_m_b_i_e_n_t controls the filtered texture value
  407.             generated in shadowed regions (see _S_G_I_X__s_h_a_d_o_w).  In
  408.             effect, this changes the ambient lighting in shadows.
  409.             Supported on InfiniteReality systems.
  410.  
  411.           +o _S_G_I_S__s_h_a_r_p_e_n__t_e_x_t_u_r_e introduces texture magnification
  412.             filters that sharpen the resulting image by
  413.             extrapolating from the level 1 image to the level 0
  414.             image.  Sharpening can be enabled for all color
  415.             channels, for the alpha channel only, or for the red,
  416.             green, and blue channels only.  Supported on
  417.             RealityEngine, RealityEngine2, and VTX systems and on
  418.             InfiniteReality systems.
  419.  
  420.           +o _S_G_I_X__s_u_b_s_a_m_p_l_e defines new pixel storage modes used in
  421.             the conversion of image data to and from component
  422.             subsampled formats on the client side.  Supported on
  423.             Octane2 VPro systems.
  424.  
  425.           +o _E_X_T__s_u_b_t_e_x_t_u_r_e allows a contiguous portion of an
  426.             already-existing texture image to be redefined without
  427.             affecting the remaining portion of the image or any of
  428.             the other state that describes the texture. There are
  429.             three new calls: _g_l_T_e_x_S_u_b_I_m_a_g_e_1_D_E_X_T,
  430.             _g_l_T_e_x_S_u_b_I_m_a_g_e_2_D_E_X_T, and _g_l_T_e_x_S_u_b_I_m_a_g_e_3_D_E_X_T.  A subset
  431.             of this extension is available on RealityEngine,
  432.             RealityEngine2, and VTX systems, and the full extension
  433.             is available on all other systems.
  434.  
  435.           +o _E_X_T__t_e_x_t_u_r_e provides support for a variety of
  436.             resolutions of color components in texture images. That
  437.             is, instead of treating a retained image as having 1,
  438.             2, 3, or 4 components, it is treated as though it had a
  439.             specific format, such as GL_LUMINANCE_ALPHA, or just
  440.             GL_ALPHA.  This extension also defines a robust method
  441.             for applications to determine what combinations of
  442.             texture dimensions and resolutions are supported by an
  443.             implementation and it introduces a new texture
  444.             environment: GL_REPLACE_EXT.
  445.  
  446.           +o _E_X_T__t_e_x_t_u_r_e_3_D supports 3-dimensional texture mapping.
  447.             It also defines the in-memory formats for 3D images,
  448.             and adds pixel storage modes to support them.
  449.  
  450.           +o _S_G_I_X__t_e_x_t_u_r_e__a_d_d__e_n_v defines a new texture environment
  451.             function which scales the texture value by the constant
  452.             texture color and then adds a bias color.  Supported
  453.             only on InfiniteReality systems.
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                   - 8 -
  467.  
  468.  
  469.  
  470.           +o _S_G_I_S__t_e_x_t_u_r_e__b_o_r_d_e_r__c_l_a_m_p provides a variation in the
  471.             texture clamping arithmetic which results in sampling
  472.             the border color rather than the average of the edge
  473.             and border colors.  Supported on Octane2 VPro systems.
  474.  
  475.           +o _S_G_I_S__t_e_x_t_u_r_e__c_o_l_o_r__m_a_s_k specifies which color
  476.             components of the texture elements in an image are
  477.             affected by the commands that define texture images.
  478.             Supported on Octane2 VPro systems.
  479.  
  480.           +o _S_G_I__t_e_x_t_u_r_e__c_o_l_o_r__t_a_b_l_e adds a color lookup table to
  481.             the texture mapping process.
  482.  
  483.           +o _S_G_I_X__t_e_x_t_u_r_e__c_o_o_r_d_i_n_a_t_e__c_l_a_m_p provides a way to set the
  484.             maximum texture coordinate clamping value to something
  485.             other than 1.0.  Supported on Octane2 VPro systems.
  486.  
  487.           +o _S_G_I_S__t_e_x_t_u_r_e__e_d_g_e__c_l_a_m_p The GL normally clamps texture
  488.             coordinates to the range [0,1].  This can cause the
  489.             texture sampling filter to straddle the edge of the
  490.             texture image, taking half its sample values from
  491.             within the texture image, and the other half from the
  492.             texture border.  Sometimes this is undesirable.
  493.             _S_G_I_S__t_e_x_t_u_r_e__e_d_g_e__c_l_a_m_p defines a new texture clamping
  494.             method that ensures all sample values fall within the
  495.             texture image.  Supported on InfiniteReality and
  496.             Octane2 VPro systems.
  497.  
  498.           +o _E_X_T__t_e_x_t_u_r_e__e_n_v__a_d_d defines a new texture environment
  499.             function which simply adds the texture color to the
  500.             fragment color.
  501.  
  502.           +o _S_G_I_S__t_e_x_t_u_r_e__f_i_l_t_e_r_4 allows 1D and 2D textures to be
  503.             filtered using an application-defined symmetric and
  504.             separable filter with four samples per dimension.  In
  505.             the most common 2D case, the filter is bicubic.  This
  506.             filtering can yield better-quality images than
  507.             mipmapping, and is often used in image processing
  508.             applications.  Supported on InfiniteReality systems.
  509.  
  510.           +o _S_G_I_S__t_e_x_t_u_r_e__l_o_d provides mechanisms that reduce the
  511.             number of mipmap levels required for mipmapped
  512.             texturing.  This allows a large texture to be loaded
  513.             and used initially at low resolution, and to increase
  514.             the resolution gradually as time passes or as more
  515.             mipmap levels become available.  Supported on
  516.             InfiniteReality and Octane2 VPro systems.
  517.  
  518.           +o _S_G_I_X__t_e_x_t_u_r_e__l_o_d__b_i_a_s provides mechanisms that apply a
  519.             bias to the n, m and l parameters in the LOD
  520.             calculation, to compensate for over- or under-sampled
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                   - 9 -
  533.  
  534.  
  535.  
  536.             texture images.  Supported on InfiniteReality and
  537.             Octane2 VPro systems.
  538.  
  539.           +o _E_X_T__t_e_x_t_u_r_e__o_b_j_e_c_t supports named texture objects whose
  540.             contents and parameters may be changed after they are
  541.             defined.  (Contrast this with textures in display
  542.             lists, which cannot be modified after the display lists
  543.             are created.)  For machines with special texture
  544.             memories, _E_X_T__t_e_x_t_u_r_e__o_b_j_e_c_t also provides simple
  545.             texture memory management.
  546.  
  547.           +o _S_G_I_X__t_e_x_t_u_r_e__s_c_a_l_e__b_i_a_s adds scale, bias, and clamp
  548.             operations to the texture pipeline.  These operations
  549.             are applied to the filtered result of a texture lookup,
  550.             before that result is used in the texture environment
  551.             equations and before the texture color lookup table of
  552.             _S_G_I__t_e_x_t_u_r_e__c_o_l_o_r__t_a_b_l_e.
  553.  
  554.           +o _E_X_T__v_e_r_t_e_x__a_r_r_a_y adds the ability to specify multiple
  555.             geometric primitives with very few subroutine calls.
  556.             Instead of calling an OpenGL procedure to pass each
  557.             individual vertex, normal, or color, separate arrays of
  558.             vertexes, normals, and colors are prespecified, and are
  559.             used to define a sequence of primitives (all of the
  560.             same type) when a single call is made to
  561.             _g_l_D_r_a_w_A_r_r_a_y_s_E_X_T. A stride mechanism is provided so that
  562.             an application can choose to keep all vertex data
  563.             staggered in a single array, or sparsely in separate
  564.             arrays, but single-array storage generally will provide
  565.             better performance.  This extension also supports the
  566.             rendering of individual array elements, each specified
  567.             as an index into the enabled arrays.
  568.  
  569.           +o _S_G_I_X__v_e_r_t_e_x__p_r_e_c_l_i_p supplies a way to control the
  570.             precision of interpolation of parameters across the
  571.             extent of primitives with large screen space
  572.             dimensions.  This control allows trading off precision
  573.             for higher rasterization performance.  Supported on
  574.             Octane2 VPro systems.
  575.  
  576.        The following GLX extensions are available in 6.5.  For
  577.        detailed information, please consult the _g_l_x_i_n_t_r_o reference
  578.        page.
  579.  
  580.           +o _S_G_I_X__f_b_c_o_n_f_i_g introduces a new way to describe the
  581.             capabilities of a GLX drawable (i.e., to describe the
  582.             depth of color buffer components and the type and size
  583.             of ancillary buffers), removes the "similarity"
  584.             requirement when making a context current to a
  585.             drawable, and supports RGBA rendering to one- and two-
  586.             component Windows and GLX Pixmaps.
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                                   - 10 -
  599.  
  600.  
  601.  
  602.           +o _E_X_T__i_m_p_o_r_t__c_o_n_t_e_x_t allows multiple X clients to share
  603.             an indirect rendering context. Also, two convenience
  604.             routines are added: one to get the display for the
  605.             current context and one to retrieve the attributes that
  606.             a context was created with.
  607.  
  608.           +o _S_G_I__m_a_k_e__c_u_r_r_e_n_t__r_e_a_d allows OpenGL pixel operations to
  609.             read pixel data from the buffers of one drawable and
  610.             draw into the buffers of another.  For example, pixels
  611.             can be copied from one window into another, or from a
  612.             GLXPbuffer into a window.
  613.  
  614.           +o _S_G_I_S__m_u_l_t_i_s_a_m_p_l_e provides a mechanism to antialias all
  615.             primitives.  In order to support multisampling both GLX
  616.             and OpenGL had to be extended. The GLX portion of the
  617.             extension includes new visual attributes which can be
  618.             specified when calling _g_l_X_C_h_o_o_s_e_V_i_s_u_a_l and
  619.             _g_l_X_G_e_t_C_o_n_f_i_g.  This extension is supported on
  620.             RealityEngine, RealityEngine2, and VTX systems, and on
  621.             InfiniteReality systems.
  622.  
  623.           +o _S_G_I_X__p_b_u_f_f_e_r defines GLX pixel buffers, which are
  624.             additional non-visible rendering buffers for an OpenGL
  625.             renderer.  GLX pixel buffers are typically allocated in
  626.             non-visible frame buffer memory.  They are intended to
  627.             be "static" resources, in that a program will typically
  628.             allocate them only once, rather than as a part of its
  629.             rendering loop. Also the frame buffer resources that
  630.             are associated with a GLX pixel buffer are static, and
  631.             are deallocated only when the GLXPbuffer is destroyed,
  632.             or, in the case of a _u_n_p_r_e_s_e_r_v_e_d GLX pixel buffer, as a
  633.             result of X server activity that changes its frame
  634.             buffer requirements.
  635.  
  636.           +o _S_G_I__s_w_a_p__c_o_n_t_r_o_l provides new parameters that modify
  637.             the semantics of _g_l_S_w_a_p_B_u_f_f_e_r_s. With this extension an
  638.             application can specify a minimum periodicity for color
  639.             buffer swaps, measured in display retrace periods.
  640.  
  641.           +o _S_G_I_X__v_i_d_e_o__r_e_s_i_z_e allows the frame buffer to be resized
  642.             to the output resolution of the video channel when
  643.             _S_w_a_p_B_u_f_f_e_r_s is called for the window that is bound to
  644.             the video channel.  This extension is supported only on
  645.             InfiniteReality systems.
  646.  
  647.           +o _S_G_I_X__v_i_d_e_o__s_o_u_r_c_e allows pixel data to be sourced from
  648.             a video input stream.  It defines a new type of
  649.             drawable, GLXVideoSourceSGIX, that represents the drain
  650.             node of a Video Library (VL) path.  A
  651.             GLXVideoSourceSGIX may be passed as a parameter to
  652.             _g_l_X_M_a_k_e_C_u_r_r_e_n_t_R_e_a_d_S_G_I to indicate that pixel data
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                   - 11 -
  665.  
  666.  
  667.  
  668.             should be read from the specified video source instead
  669.             of from the framebuffer.
  670.  
  671.           +o _S_G_I__v_i_d_e_o__s_y_n_c provides a means for synchronization
  672.             with the video frame rate of a monitor - or, in the
  673.             case of an interlaced monitor, with the field rate of
  674.             the monitor.
  675.  
  676.           +o _E_X_T__v_i_s_u_a_l__i_n_f_o allows the user to request a particular
  677.             X visual type to be associated with a GLX visual, and
  678.             allows the user to query the X visual type underlying a
  679.             GLX visual. In addition, this extension provides a
  680.             means to request a visual with a transparent pixel and
  681.             to query whether a visual supports a transparent pixel
  682.             value and the value of the transparent pixel.
  683.  
  684.           +o _E_X_T__v_i_s_u_a_l__r_a_t_i_n_g allows servers to identify a
  685.             particular GLX visual as undesirable. This allows
  686.             servers to export visuals with improved features or
  687.             image quality, but lower performance or greater system
  688.             burden, without having to have these visuals selected
  689.             preferentially.
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.